package cn.org.atool.generator.util;

import com.squareup.javapoet.ClassName;

/**
 * 模板生成上下文常用Key
 *
 * @author wudarui
 */
public interface ConfigKey {
    /**
     * Entity默认后缀
     */
    String Entity_Default_Suffix = "Entity";
    /**
     * 未定义
     */
    String NOT_DEFINED = "$$NOT_DEFINED$$";
    /**
     * 引号
     */
    char QuotaStr = '"';

    String Mybatis_Annotation_Package = "cn.org.atool.fluent.mybatis.annotation";

    String Mybatis_Base_Package = "cn.org.atool.fluent.mybatis.base";

    String Test4J_Annotation_Package = "org.test4j.module.spec.annotations";

    String Test4J_Db_Annotation_Pack = "org.test4j.module.database.annotations";

    String Spring_Annotation_Package = "org.springframework.stereotype";

    String Database_Package = "org.test4j.module.database";

    String Datagen_Package = "org.test4j.tools.datagen";

    /**
     * ====== ClassName定义 =======
     **/

    ClassName Repository = ClassName.get(Spring_Annotation_Package, "Repository");

    ClassName Mix = ClassName.get(Test4J_Annotation_Package, "Mix");

    ClassName Mixes = ClassName.get(Test4J_Annotation_Package, "Mixes");

    ClassName IDataSourceScript = ClassName.get(Database_Package, "IDataSourceScript");

    ClassName IBaseDao = ClassName.get(Mybatis_Base_Package, "IBaseDao");

    ClassName ScriptTable = ClassName.get(Test4J_Db_Annotation_Pack, "ScriptTable");

    ClassName DataMap = ClassName.get("org.test4j.module.ICore", "DataMap");

    ClassName IDataMap = ClassName.get(Datagen_Package, "IDataMap");

    ClassName IDatabase = ClassName.get(Database_Package, "IDatabase");

    ClassName KeyValue = ClassName.get(Datagen_Package, "KeyValue");

    ClassName ColumnDef = ClassName.get(Test4J_Db_Annotation_Pack, "ColumnDef");

    ClassName IEntity = ClassName.get(Mybatis_Base_Package, "IEntity");

    ClassName TableId = ClassName.get(Mybatis_Annotation_Package, "TableId");

    ClassName TableField = ClassName.get(Mybatis_Annotation_Package, "TableField");

    ClassName FluentMybatis = ClassName.get(Mybatis_Annotation_Package, "FluentMybatis");

    ClassName FluentDbType = ClassName.get("cn.org.atool.fluent.mybatis.metadata", "DbType");
}